package pl.perseus.action;

import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;

import pl.perseus.model.Przel;
import pl.perseus.model.Rach;
import pl.perseus.model.User;
import pl.perseus.service.przel.IPrzelService;
import pl.perseus.service.rach.IRachService;
import pl.perseus.service.user.IUserService;

public class GetHistoryAction extends BaseAction {

	@Autowired
	IPrzelService przelService;
	
	@Autowired
	IRachService rachService;
	
	@Autowired
	IUserService userService;
	
	@Override
	public String execute() {
		
		result = new HashMap<String, Object>();
		List<Rach> list = rachService.getRachsForUser(userService.selectUserByLogin(getCurrentUserLogin()));
		List<Map<String, String>> items = new LinkedList<Map<String, String>>();
		
		for(Rach rach : list){
			List<Przel> przelList = przelService.getPrzelerForOutRach(rach);
			for(Przel przel : przelList){
				Rach in = rachService.getByIdRach(przel.getRach_target());
				Map<String, String> przelMap = new HashMap<String, String>();
				przelMap.put("id", przel.getId().toString());
				przelMap.put("title", przel.getTitle1());
				przelMap.put("date", new SimpleDateFormat().format(przel.getDate_exec()));
				przelMap.put("rachOut", rach.getRach().toString());
				przelMap.put("rachIn", in.getRach().toString());
				przelMap.put("rec", przel.getOdb_nazwa1());
				przelMap.put("recDet", przel.getOdb_nazwa2());
				przelMap.put("casch", przel.getAmount().toString());
				items.add(przelMap);
			}
		}
		
		result.put("label", "label");
		result.put("identifier", "id");
		result.put("items", items);
		
		return SUCCESS;
	}

}
